Programeu Arduino amb Scratch 2 a Ubuntu (32 bits)

Anem a veure com instal·lar alguns programes i extensions al nostre Ubuntu de 32 bits per poder programar la targeta Arduino de forma gràfica amb l’editor fora de línia Scratch 2 del MIT.

1- ## Requisit previ, instal·lar librxtx-java

sudo apt-get install librxtx-java

2-  Instal·la Adobe Air amb les següents instruccions  per a Ubuntu:

2.1- ##  Crea l’usuari root al nostre ubuntu amb l’ordre
sudo passwd

2.2- $$ Baixa el script per fer la instal·lació des de la web de Noobslab  amb l’ordre:

wget http://drive.noobslab.com/data/apps/AdobeAir/adobe-air.sh

(Aquesta ordre sembla que no funciona des de dins de la xarxa de centres públics de la GVA, descarregueu-se aquest fitxer en la vostra casa).

2.3- $$ Aneu on heu baixat aquest fitxer amb el terminal, suposem que és la carpeta /home/tecnologia

cd /home/tecnologia

i canvieu els permisos d’execució de l’script baixat amb l’ordre:

chmod +x adobe-air.sh

2.4- ## Executeu el script amb l’ordre:

sudo ./adobe-air.sh

El programa Adobe Air us demanarà la contrasenya de roor ( pot ser diferent de la de sudo però cal haver creat l’usuari roor al pas 2.1 ) i farà la instal·lació de la versió 2.6 d’Adobe Air

3- Instal·lem Scratch 2 baixant-lo de la web seua.

Instal·lació de Scratch 2 amb Adobe Air en Ubuntu de 32 bits

Instal·lació de Scratch 2 amb Adobe Air en Ubuntu de 32 bits

4- El programa crearà un enllaç a l’escriptori per executar Scratch 2.

Scratch2 en Ubuntu

Scratch2 en Ubuntu

5- Instal·leu Arduino en Linux. Ací teniu algunes instruccions si no sabeu fer això.

6- Carregueu el  StandardFirmata firmware a la targeta (des de “Fitxer > Exemples > Firmata > StandardFirmata “).

7- $$ Baixar el zip amb el codi font de l’extensió A4S que està fent Damellis des de l’adreça:
wget https://github.com/damellis/A4S/archive/master.zip

i descomprimir-lo, llavors es crearà la carpeta A4S-master que podem deixar en /home/tecnologia o en /opt si no volem que els alumnes l’esborren.

8- $$ Llança el servidor A4S emprant el script “run.sh” des del terminal.
Passa el nom del port que escriurà la targeta Arduino  en format llegible per Linux

cd /home/tecnologia/A4S-master
./run.sh /dev/ttyACM0

Veuràs que tens problemes si no tens el java d’Oracle i si el tens també hauràs d’arreglar alguna coseta com t’explicaré ara.

8.1 ## Posa el java d’Oracle en Ubuntu. (salta aquest pas si ja tens el java d’Oracle)

Executa les següents ordres una a una,

sudo add-apt-repository ppa:webupd8team/java

sudo apt-get update

sudo apt-get install oracle-java7-installer

sudo update-java-alternatives -s java-7-oracle

Per canviar entre diferents versions de Java cal utilitzar l’ordre de terminal:

sudo update-alternatives –config java

8.2 Si tens el java d’Oracle a l’executar l’ordre ( ./run.sh /dev/ttyACM0)

tindràs l’error:

java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path thrown while loading gnu.io.RXTXCommDriver
Exception in thread “main” java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1865)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1119)
at gnu.io.CommPortIdentifier.<clinit>(CommPortIdentifier.java:83)
at A4S.main(A4S.java:76)

$$ Per resoldre aquest error per una bona temporada et cal buscar la llibreria rxtxSerial que el java d’Oracle no troba, ho pots amb l’ordre

locate librxtxSerial

que retornarà aquestes dues ratlles si has instal·lat librxtx-java al pas 1.

/usr/lib/jni/librxtxSerial-2.2pre1.so
/usr/lib/jni/librxtxSerial.so

Ara sols caldria copiar la llibreria librxtxSerial.so al java d’Oracle, però cal mirar quina versió de java tens instal·lada per defecte amb l’ordre

sudo update-alternatives –config java

que retornarà les ratlles semblants a aquestes:

Hi ha 5 possibilitats per a l’alternativa java (que proveeix /usr/bin/java).

Selecció    Camí                                           Prioritat  Estat
————————————————————
0            /usr/lib/jvm/java-8-oracle/jre/bin/java          1082      mode automàtic
1            /opt/java/jdk1.8.0_31/bin/java                   1         mode manual
2            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      mode manual
3            /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java    1070      mode manual
* 4            /usr/lib/jvm/java-7-oracle/jre/bin/java          1081      mode manual
5            /usr/lib/jvm/java-8-oracle/jre/bin/java          1082      mode manual
Premeu retorn per a mantenir l’opció per defecte[*], o introduïu un número de selecció: (Premeu retorn i no canvieu res)

El vostre java per defecte està en *4  /usr/lib/jvm/java-7-oracle/jre/bin/java

Caldrà que copieu la llibreria librxtxSerial.so al java per defecte d’Oracle amb l’ordre:

sudo cp ‘/usr/lib/jni/librxtxSerial.so’   ‘/usr/lib/jvm/java-7-oracle/jre/lib/i386’

Ara a l’executar l’ordre ./run.sh /dev/ttyACM0 veureu les ratlles
Stable Library
=========================================
Native lib Version = RXTX-2.2pre2
Java lib Version   = RXTX-2.1-7
WARNING:  RXTX Version mismatch
Jar version = RXTX-2.1-7
native lib Version = RXTX-2.2pre2
HTTPExtensionExample helper app started on Departament/127.0.1.1

que indiquen que el servidor A4S ja comunica amb la targeta Arduino, ara ja podeu iniciar Scratch 2 i carregar l’extensió A4S amb el blocs per escriure al port USB on hem posat Arduino. No tanqueu aquest terminal on està el procés A4S executant-se si no voleu matar-lo.

la segona vegada que vulgam iniciar aquest servidor crearen un script de bash gràfic a l’escriptori i li donarem permís d’execució, i posarem dins les ratlles aquestes:

 #!/bin/bash          
 cd /home/tecnologia/A4S-master
./run.sh /dev/ttyACM0

i així no caldrà que els alumnes utilitzen per a res el terminal.

9- Amb el servidor A4S en marxa ja siga amb un script de bash o amb el terminal iniciem Scratch 2.

10- Mentre es prem la tecla majuscules «Shift» del teclat, aneu i premeu «Fitxer» al menú  Scratch. Podeu veure «Import Experimental Extension» o «Import Experimental HTTP Extension» a la part inferior del menú. Premeu sobre aquesta opció.

11- Navegeu fins el directori /home/tecnologia/A4S-master que conté A4S i seleccioneu el fitxer A4S.s2e

12- Podeu veure l’extensió A4S i els blocs es troben en la categoria «Més blocs» de l’editor Scratch. Si el servidor A4S està executant-se, apareixerà un punt verd a la vora del títol «A4S».

MésBlocs-A4S amb el punt verd que indica que el servidor A4S està funcionant.

MésBlocs-A4S amb el punt verd que indica que el servidor A4S està funcionant.

Ara sols falta posar un led al port 13 i fer un programeta per comprovar si açò funciona després de tanta faena. Us deixe la prova que a mi m’ha funcionat amb aquestes instruccions.

Led 13 engegant-se i apagant-se en Arduino amb Scratch 2

Led 13 engegant-se i apagant-se en Arduino amb Scratch 2

Ara ens cal instal·lar això en un ordinador del centre i clonar-lo amb Clonezilla, i ja podem fer-ho enguany doncs el curs proper quan entre la LOMQE al País Valencià les hores per construir robots i programar-los en Tecnologia a la ESO baixaran a la meitat. En altres comunitats el conseller/a de torn a anunciat que augmentaran les hores autonòmiques per Tecnologia  / Dibuix tècnic  però a València la Consellera Català calla i otorga. Tenim el que votem!!!

2 comments

  1. Funciona molt bé. Gràcies per la aportació!!!

    La instal·lació en LliureX és un poc més senzilla. He publicat un manual adaptant les teues instruccions ací: http://wikimanuals.edutictac.es/index.php?title=Instal%C2%B7lar_Scratch_2_per_a_programar_Arduino

    Salutacions.

      • on 17 de novembre de 2015 at 15:18

      Hola Daniel,
      Ja havia provat que la instal·lació en Lliurex 14 i havia vist que és més senzilla. ( http://gnuéscultura.eu/?p=1408 )
      El que em va faltar dir és que si a l’arrancar l’ordinador tens un pendrive usb connectat a l’ordinador , quan poses el usb amb arduino després has de modificar l’ordre per el servidor A4S reconega la targeta Arduino i en lloc de posar
      ./run.sh /dev/ttyACM0
      et caldrà posar
      ./run.sh /dev/ttyACM1
      Una solució alternativa és arrancar l’ordinador i posar la targeta USB Arduino abans que qualsevol pendrive per tal que el dispositiu Arduino siga el primer que pille l’ordinador i tinga assignat el punt de muntatge /dev/ttyACM0

      Gràcies Daniel per ajudar-me a difondre Scratch2 i Arduino entre els docents valencians.

Els comentaris estan desactivats.